import docx
from docx.oxml.table import CT_Tbl
from docx.oxml.text.paragraph import CT_P
from docx.table import Table
from docx.text.paragraph import Paragraph
from docx.shared import Pt,RGBColor,Cm
from docx.text.font import Font
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.enum.text import WD_BREAK
import itertools

# doc = docx.Document(r"D:\code\pythonProject\test\Wordfiles\分光光度法分析水中污染物原始记录-总磷GB11893-89 - 副本.docx")
#表格和段落分开读取
# for p in doc.paragraphs:
#     print(p)
#     # print(p.style.name,"--->",p.text)
# for t in doc.tables:
#     print(t)
# print("-"*100)

#循环中间类型格式数据,逐行读取
# body=doc.element.body
# for child in body.iterchildren():
#     if type(child)==CT_Tbl:
#         # print("表格",child)
#         table_obj = Table(child, body)
#         print(table_obj)
#     elif type(child)==CT_P:
#         # print("段落",child)
#         para_obj = Paragraph(child, body)
#         print(para_obj)
    # print(child)

#表格对象
# table_obj=doc.tables[0]
# # print(len(table_obj.rows))
# # print(len(table_obj.columns))
# for row_object in table_obj.rows:
#     # print(row_object)
#     row_text_list=[]
#     for cell in row_object.cells:
#         row_text_list.append(cell.text)
#     print(row_text_list)
#     # cell_object=row_object.cells[0]
#     # print(cell_object.text)
#     print("-"*50)

# # 段落写入
# doc=docx.Document()
# doc.add_paragraph(text="中国联通")
# doc.add_paragraph(text="中国移动")
# doc.save(r"D:\code\pythonProject\test\Wordfiles\new.docx")

# # 段落和run
# doc=docx.Document()
# par1=doc.add_paragraph(text="liuchaopeng")
# par1.add_run(text=" is a gentlemen.")
# par2=doc.add_paragraph(text="曾小贤")
# par2.add_run(text=" 是一个贱人。")
# doc.save(r"D:\code\pythonProject\test\Wordfiles\描述.docx")

#段落格式
# doc=docx.Document()
# doc.add_paragraph(text="奉天承运",style="Heading 1")
# doc.add_paragraph(text="皇帝诏曰",style="Heading 2")
# doc.add_paragraph(text="今天朕发现，江西布政司在任上勾结突厥，意图破坏我朝江山。")
# doc.save(r"D:\code\pythonProject\test\Wordfiles\绝密文件.docx")

#字体样式
# doc=docx.Document()
# p1=doc.add_paragraph(text="中国联通")
# run_obj= p1.add_run("广西分部")
# run_obj.font.size=Pt(22)  #设置字体大小
# run_obj.font.color.rgb=RGBColor(255,0,255) #设置字体颜色
# run_obj.font.bold=True         #字体加粗
# run_obj.font.italic=True       #字体斜体
# print(type(run_obj.font))
# p1.add_run("山西分部")
# doc.save(r"D:\code\pythonProject\test\Wordfiles\设置字体样式.docx")

#对齐方式
# doc=docx.Document()
# p1=doc.add_paragraph(text="河南省濮丰检测服务有限公司")
# p1.paragraph_format.alignment=WD_PARAGRAPH_ALIGNMENT.THAI_JUSTIFY
# doc.save(r"D:\code\pythonProject\test\Wordfiles\设置对齐方式.docx")

#段落缩进和行间距
# doc=docx.Document()
# p1=doc.add_paragraph(text="一听这话，紫灵原本勉强做出的笑容，一下凝滞住了。旁边一名魔宫侍女，也马上将一只拖盘递到了此女身前。盘中放着一把壶和一个翠绿的酒杯。紫灵垂首看了看盘中之物，乌云般秀发一时挡住了大半脸庞，让人无法看到此女现在神情，但是她妙曼的身形只是静止了片刻后，就缓缓伸出一只皓腕，轻轻拿起了酒壶的把手。大殿中有些紧张的气氛，随着此女的动作，顿时为之一松。")
# p1.paragraph_format.line_spacing=Pt(50) #行间距设置为50磅
# p2=doc.add_paragraph(text="紫灵脸上异样已经不见，重新恢复了冷漠淡然的神态，望向韩立的目光也刹那间像看陌生人一般。")
# p2.paragraph_format.alignment=WD_PARAGRAPH_ALIGNMENT.CENTER  #对齐方式
# p3=doc.add_paragraph(text="韩立看着近在咫尺的酒杯，没有马上伸手去接酒杯，反而目光顺着酒杯在女子手臂，身体，最后停在了那玉雕般的精致脸庞之上。")
# p3.paragraph_format.left_indent=Pt(20)   #左缩进
# p4=doc.add_paragraph(text="一旁的向之礼似乎感应到了社么，望这呼老魔一眼眉头不禁一皱，而风老怪看着韩立和紫灵之间的诡异情形，只是嘿嘿一笑，人看不出心中倒底如何所想。")
# p4.paragraph_format.first_line_indent=Pt(20)  #首行缩进
# p5=doc.add_paragraph(text="“呼道友，我看你在魔宫呆久，有些糊涂了。修为到了我们这等地步，区区虚名又算得了什么。这名女子虽然长的国色天香，但你真会为一名侍妾，就想放弃大道永生的机会？不过，你若实在心气难消。只要不伤了他性命，并且保证不让此人和我等翻脸，稍微教训一下他。老夫自然只当没看见的。”向之礼淡淡的回道。")
# p5.paragraph_format.line_spacing=1.5  #行间距设置为1.5倍
# doc.save(r"D:\code\pythonProject\test\Wordfiles\设置段落缩进.docx")

# #段落中间加换行符↓
# doc=docx.Document()
# p1=doc.add_paragraph(text="这一下，木冠老者真的心中大怒了，面色铁青之下，口中一连三个“好”字出口。如电的目光在紫灵和韩立身上一扫而过，一股惊人的气势随之爆发而出，整个人瞬间变成了一个巨大漩涡，大殿中的灵气全都飞也似的汇集过去。让所有感受到老魔身上深不可测灵压的修士，都心中一凛起来，人人脑中都不禁闪过一个念头。")
# run_obj=p1.add_run(text="这老魔似乎真被韩立触怒了，看来马上要出手了。")
# run_obj.add_break()#添加换行符
# p1.add_run(text="一如此想道，离韩立这边稍近的两名修士，但互望一眼后，却也悄然无声的站起身来，向后退了几步出去。以免一旦动起手来，被波及了进去。")
# doc.save(r"D:\code\pythonProject\test\Wordfiles\段落中加换行符.docx")

# 分页符
# doc=docx.Document()
# p1=doc.add_paragraph(text="紫灵虽然凝结元婴成功，但是自然无法抵挡化神修士正面而来的惊人灵压，脸色一白之下，娇躯微晃的连退两步，一下到了刚才给韩立的桌前。")
# run_obj=p1.add_run(text="一只温煦的手掌，顿时无声息的出现在了此女的香肩上。")
# run_obj.add_break(break_type=WD_BREAK.PAGE)
# p1.add_run(text="嘿嘿，既然你真这般想要此女。好，老夫成全你。别说呼某不给你机会。既然你说世间任何东西都可交换，就用你的手中的两件灵宝，来换取紫灵这丫头的自由之身吧。”呼老魔见此情形，怒极反笑起来，接着身上惊人气势一收，一张口就是狮子大开口。")
# doc.save(r"D:\code\pythonProject\test\Wordfiles\段落中增加分页符.docx")

#写入表格
# doc=docx.Document()
# tb=doc.add_table(rows=3,cols=3,style="Table Grid")
# data_list=["姓名","年龄","性别","鲁亚飞",22,"男","张春花",18,"女"]
# index=0
# for row in tb.rows:
#     for cell in row.cells:
#         cell.add_paragraph(text=str(data_list[index]))
#         index += 1
# doc.save(r"D:\code\pythonProject\test\Wordfiles\添加表格.docx")

#嵌套列表写入表格
# doc=docx.Document()
# # tb=doc.add_table(rows=3,cols=3,style="Light List Accent 3")
# tb=doc.add_table(rows=4,cols=3,style="Table Grid")
# tb.rows[0].height=Cm(2)           #设置表格第一行高度
# tb.rows[0].cells[0].width=Cm(20)  #设置表格第一列宽度
# data=[
#     ["姓名","年龄","性别"],
#     ["鲁亚飞","22","男"],
#     ["张春花","17","女"],
#     ["他俩是高中同学，张春花可能是鲁亚飞的初恋。"]
# ]
# data_list=list(itertools.chain(*data))  #将多维列表转为一维列表
# index=0
# row_count = 1
# for row in tb.rows:
#     for cell in row.cells:
#         if index < len(data_list):
#             p = cell.add_paragraph()
#             run = p.add_run(text=data_list[index])
#         if row_count==1:
#             run.bold=True    #首行加粗
#             run.font.color.rgb=RGBColor(224,102,255) #设置首行字体颜色
#         index += 1
#     row_count += 1
# c1=tb.cell(3,0)
# c2=tb.cell(3,2)
# c1.merge(c2)
# doc.save(r"D:\code\pythonProject\test\Wordfiles\表格中添加数据.docx")

#添加图片
# doc=docx.Document()
# doc.add_paragraph(text="对这些化神修士来书，恐怕可以延年益寿的灵药，绝对比一两件灵宝，更让他们趋之若鹜了。韩立可不信呼老魔真会不动心的。要不是自持有此东西，他想要将紫灵从魔宫带走，还真有些头痛的。当然他之所以敢拿出此物来，也是在对方已经对自己有几分忌惮之下。否则他可不想，反刺激一名化神修士对自己大大出手的")
# pic=doc.add_picture(r"E:\OneDrive\文档\WeChat Files\wxid_clqxymvwi3or22\FileStorage\Cache\2024-12\821e3fe5d3191c2dcceeaed996651eb6_t.jpg")
# # pic.width=Cm(5)  #设置图片宽度
# # pic.height=Cm(5) #设置图片高度
# pic.width=int(pic.width*0.2)
# pic.height=int(pic.height*0.2)
#
# doc.save(r"D:\code\pythonProject\test\Wordfiles\添加图片.docx")

